﻿/////////////////////////////////////////////////////////////////////////
//                                                                     //
//    MTGProject - A Magic The Gathering Networked Environment         //
//                                                                     //
//          Copyright (c) 2008-2009 by The MTGProject Team             //
//                                                                     //
// This file is part of MTGProject.                                    //
//                                                                     //
// MTGProject is free software; you can redistribute it and/or         //
// modify it under the terms of the GNU Lesser General Public          //
// License as published by the Free Software Foundation; either        //
// version 3 of the License, or (at your option) any later version.    //
//                                                                     //
// This library is distributed in the hope that it will be useful,     //
// but WITHOUT ANY WARRANTY; without even the implied warranty of      //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the       //
// GNU Lesser General Public License for more details.                 //
//                                                                     //
// You should have received a copy of the GNU Lesser General Public    //
// License along with this library; if not, write to the Free Software //
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA           //
// 02111-1307, USA, or contact the author(s):                          //
//                                                                     //
// Ruben Acuna <flyingfowlsoftware@earthlink.net>                      //
//                                                                     //
/////////////////////////////////////////////////////////////////////////

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using CSScriptLibrary;

namespace MTGProject
{
    public class UtilScripts
    {
        static public object Load(string script, string objectName)
        {
            CSScript.ShareHostRefAssemblies = true;

            AsmHelper helper = new AsmHelper(CSScript.Load(Path.GetFullPath(script), null, true));
            return helper.CreateObject(objectName);
        }

        static public int GetAndPayCostX(PlayerController controller)
        {
            int X = 0;

            while (controller.Puppet.ManaPool.Count > 0)
            {
                controller.Puppet.ManaPool.Remove(controller.Puppet.ManaPool.First.Value);
                X++;
            }

            return X;
        }

        static public int ControllersBasicLandTypes(PlayerController controller)
        {
            int types = 0;

            foreach (ICard card in controller.Puppet.Permanents.Cards)
                if (card is CardLand && card.Colors.First.Value == ManaColor.WHITE)
                {
                    types++;
                    break;
                }

            foreach (ICard card in controller.Puppet.Permanents.Cards)
                if (card is CardLand && card.Colors.First.Value == ManaColor.BLUE)
                {
                    types++;
                    break;
                }

            foreach (ICard card in controller.Puppet.Permanents.Cards)
                if (card is CardLand && card.Colors.First.Value == ManaColor.BLACK)
                {
                    types++;
                    break;
                }

            foreach (ICard card in controller.Puppet.Permanents.Cards)
                if (card is CardLand && card.Colors.First.Value == ManaColor.RED)
                {
                    types++;
                    break;
                }

            foreach (ICard card in controller.Puppet.Permanents.Cards)
                if (card is CardLand && card.Colors.First.Value == ManaColor.GREEN)
                {
                    types++;
                    break;
                }

            return types;
        }
    }
}
